package chapter04

/**
  * create by unseRdoG on  2021-05-28  16:49
  */
object Test02_FoeLoop {
  def main(args: Array[String]): Unit = {
    // java for 语法   for(int i = 0; i < 10; i++)

    // （1） 范围遍历
    for (i <- 1 to 10) {
      println(i + "   hello World")
    }

    /*
    这里的  to  并不是关键字，而是  int 对象的一个方法调用
    在 scala 中，对象方法调用时的  .  可以省略，用空格代替   如果后面的参数，() 都可以省略
    */

    for (i <- 1.to(10)) {
      println(i + "   hello World")
    }

    /**
    *  until 是不包括后边界的， 实质上 until 还是调用了 Range方法，即 Range(1,10)
    * */
    for (i <- 1 until 10){
      println(i + "   hello World")
    }

    /**
    *  集合遍历      java5中借鉴了scala，推出了 增强for循环
    * */
    for(i <- Array(1,2,3,4)){
        println(i)
    }

    for(i <- List(5,6,7,8)){
      println(i)
    }

    for(i <- Set(1,2,3,4)){
      println(i)
    }

    println("=========================================================================")

    // 循环守卫
    for(i <- 1 to 10 if i % 2 != 1){
      println(i)
    }

    println("=========================================================================")

    /**
    *   步长可以为负数，也可以为正
      *   步长不能为0   会直接抛出异常
      *   步长可以为 浮点数，那么响应的，Range的泛型就也要指定为浮点数
    * */
    // 循环步长  步长为3
    for (data <- 1 to 10 by 3){
      println(data)
    }
  }
}
